A MODEM is a circuit that uses digital data to modulate and demodulate a carrier wave so that digital data can be transmitted over an analog telephone network. MODEMs are commonly used to transfer data between personal computers. The MODEM is typically in the form of a circuit board that plugs into an internal slot of a personal computer, and communicates with the processor of the computer over a standard bus. A phone line is plugged into a phone jack residing on the circuit board. Alternatively, a MODEM may be a stand-alone device that communicates with a personal computer via a serial communications port.
It has recently become common to add facsimile ("fax") capabilities to MODEMs to allow users of the personal computer to send and receive faxes. With the increase in processor speeds and storage capacities of personal computers experienced over the last decade, it has also become feasible to use a personal computer for voice mail purposes. To record a voice message from a remote caller, the MODEM uses an analog-to-digital converter to digitize the voice message. The digitized message can then be stored in computer memory or on a storage device for later recall.
Unfortunately, the existing MODEM technology is not well-suited for voice mail purposes. MODEM chip-sets typically determine whether or not the remote caller has hung up the phone by monitoring the telephone line for frequency differentiation in the form of silent energy, dial tone energy and DTMF (dual tone multi-frequency) energy. This method of detecting the remote hang up tends to be unreliable for two reasons. First, the telephone line is often too noisy to detect the frequency differentiation. Second, the central telephone switching office typically does not immediately respond with a dial tone after the remote caller hangs up. For these two reasons, the MODEM often does not detect the remote hang up for 10 to 20 seconds or longer, during which time the computer unnecessarily continues to store digitized data. Thus, an improved circuit and method for detecting a remote caller hang up is needed.
To use a computer and MODEM for voice mail purposes it is also important to be able to detect when a phone local to the MODEM has been taken off-hook. For example, if the MODEM has answered an incoming call and is in the process of playing an outgoing voice mail message (or recording an incoming voice mail message), it is desirable terminate the process as soon as a local phone has been picked up. Existing MODEM chip-sets do not provide for local pick up detection, and thus do not permit the incoming or outgoing recording process to be terminated upon local pick up. A method for detecting the pick up of a local phone when the MODEM is off-hook is therefore needed.
Finally, existing MODEM technology does not permit the, MODEM to monitor events occurring locally on the phone line without the MODEM going off-hook. For example, the MODEM cannot detect whether or not a local phone is off-hook, and cannot monitor the placement of calls made from local phones. The addition of such capabilities would allow the computer to perform a variety of call monitoring, call logging and call blocking functions that are not currently possible.
The present invention is directed toward a solution to the preceding problems. The following terminology will be helpful for understanding the present invention. "Local phone" refers to a telephone that is connected to the same telephone number or extension as the subject MODEM. "Remote phone" refers to a telephone at a different telephone number or extension from the subject MODEM. "Central office" refers to a telephone switching office to which the subject MODEM is connected. "On-hook" refers to a state of a telephone, MODEM or other device in which the DC loop connecting the device to the central office is placed in an open condition. "Off-hook" refers to a state of a telephone, MODEM or other device in which the DC loop connecting the device to the central office is placed in closed condition (as commonly occurs when the telephone handset is removed from its holder). Finally, "called party control" refers generally to the process of determining whether or not a local or remote phone has been taken off-hook and acting accordingly.